# 理解字典操作的效率和遍历

"""
1.
    遍历指的是：能够把一个可迭代对象里面包含的元素依次取出来，并进行一些操作，整个过程要求不重不漏

2.
    字典被设计出来的初衷，不是为了实现遍历，而是为了增删改查，这操作是非常高的(哈希表这个
    结构被设计的非常巧妙能够以“常数级”时间复杂度来完成增删查改)，而字典的遍历效率就要差一些

3.
    直接使用 for 循环来遍历字典,拿到key，再通过key,获取value

4.
    keys 获取到字典中的所有key
    values 获取到字典中的所有value
    items 获取到字典中的所有键值对

    以上的返回的结果，看起来像列表，又不完全是，是自定义类型，使用的时候可以当作列表来使用


注：
    再C++中，哈希表里面的键值对存储的顺序，是无序的
    但是在Python中还是不一样的，Python中做了特殊出处理，能够保证遍历出来的顺序，就是
    和插入的顺序一致的，在Python中的字典，又不是一个单纯的哈希表
"""

# 3.

# a = {
#     'id': 1,
#     'name': 'li hua'
# }
#
# for key in a:
#     print(key, a[key])

# 4.
a = {
    'id': 1,
    'name': 'li hua',
}
print(a.keys())  #  结果 dict_keys(['id', 'name'])
print(a.values())  # 结果 dict_values([1, 'li hua'])
print(a.items())  # 结果是 dict_items([('id', 1), ('name', 'li hua')])
# key value 多元赋值的操作
for key, value in a.items():
    print(key, value)